package com.rose.springbootmybatisautotable.common.annotation;

import java.lang.annotation.*;

//定义方法声明
@Target(ElementType.FIELD)
//vm将在运行期也保留注释，因此可以通过反射机制累读取注释的信息
@Retention(RetentionPolicy.RUNTIME)
//将此类包含在javadoc中
@Documented
//允许子类继承父类注解
@Inherited
public @interface Column {
    /**
     * 字段名称
     * @return
     */
    public String name();

    /**
     * 字段类型
     * @return
     */
    public String type();

    /**
     * 字段长度
     * @return
     */
    public int length() default 255;

    /**
     * 小数点长度
     * @return
     */
    public int decimalLength() default 0;

    /**
     * 字段是否未null
     * @return
     */
    public boolean isNull() default true;

    /**
     * 字段是否未主键
     * @return
     */
    public boolean isKey() default false;

    /**
     * 是否未自动递增
     * @return
     */
    public boolean isAutoIncrement() default false;

    /**
     * 默认值
     * @return
     */
    public String defaultValue() default "NULL";

    /**
     * 字段是否唯一
     * @return
     */
    public boolean isUnique() default false;
}
